package es.ucm.fdi.isbc.recomendador.gui.editors;

import java.io.FileNotFoundException;
import java.util.Collection;
import java.util.Vector;

import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

import es.ucm.fdi.isbc.recomendador.gui.ObtenPoblacion;

import jcolibri.method.gui.editors.ParameterEditor;

public class LocalizacionEditor  extends JPanel implements ParameterEditor {

	private static final long serialVersionUID = 1L;
	JComboBox poblacion;
	JTextField zona;
	JTextField barrio;
	JLabel labelPoblacion;
	JLabel labelZona;
	JLabel labelBarrio;
	
	public LocalizacionEditor(){
		super();
		ObtenPoblacion oz= new ObtenPoblacion();
		Vector<String> lista=new Vector<String>();
		try {
			lista.add("Cualquiera");
			for (String s:oz.ObtenerPoblacion())
				lista.add(s);
		} catch (FileNotFoundException e) {
			System.out.println("Error cargando lista de poblaciones desde fichero viviendas.");
			e.printStackTrace();
		}
		poblacion=new JComboBox(lista);
		zona = new JTextField(20);
		barrio = new JTextField(20);
		labelPoblacion = new JLabel("Poblacion");
		labelZona = new JLabel("Zona");
		labelBarrio = new JLabel("Barrio");
		this.add(labelPoblacion);
		this.add(poblacion);
		this.add(labelZona);
		this.add(zona);
		this.add(labelBarrio);
		this.add(barrio);
	}

	@Override
	public Object getEditorValue() {
		String localizacionQuery= "/";
		if(poblacion.getSelectedItem()!=null){
			localizacionQuery+=poblacion.getSelectedItem()+"/";
			if(!zona.getText().isEmpty()){
				localizacionQuery+=zona.getText()+"/";
				if(!barrio.getText().isEmpty())
					localizacionQuery+=barrio.getText();
			}
		}
		return localizacionQuery;
	}
	@Override
	public JComponent getJComponent() {
		return (JComponent) this;
	}

	@Override
	public void setEditorValue(Object value) {
		
	}

	@Override
	public void setAllowedValues(Collection<Object> allowedValues) {
		
	}
	
}
